#include <stdio.h>
#include <string.h>
#include <openssl/md5.h>
#include <openssl/evp.h>

static char *pt(unsigned char *md, char *buf)
{
         int i;
         for (i = 0; i < MD5_DIGEST_LENGTH; i++)
         {
                 sprintf(&(buf[i*2]),"%02x",md[i]);
         }
         return(buf);
}

char *GetMd5String(char *str1, char *str2, char *buf)
{
     	unsigned char md[MD5_DIGEST_LENGTH];

     	MD5_CTX ctx;
     	MD5_Init(&ctx);

     	MD5_Update(&ctx,str1,strlen(str1));
     	MD5_Update(&ctx,str2,strlen(str2));

     	MD5_Final(md,&ctx);
	return (pt(md,buf));
}

/*
int main()
{
	static char buf[STR_LEN] = {0};
	char *str1 = "12345678";
	char *str2 = "ABSCDDFDFDF";
	GetMd5String(str1,str2,buf);
	printf("BUF:%s\n",buf);
}
*/

